Alchemy Islands

Systems of Seeds

L-System plants in a framed labyrinth.

This pattern was laser-engraved onto wood, creating a kind of imaginary board-game.

(def engrave {:stroke-weight 1 :stroke (p-color 0 0 0)})

(defn plant [d s]
    (scale 0.8 (reframe
        (let
          [grow (l-system "F" s)]
          (basic-turtle
            [0 1] 0.2 (/ PI -2) (/ PI d) (grow 3 "F")  {} 
            engrave))
        )))

(def plants
  (map plant 
      (cycle (range 3 9)) 
      (iterate 
        (fn [_] 
          (rand-nth ["F[+F]F[-F][FF]"  
                     "F[-F]F[+F][F-F]"
                     "F[-F+F]+FF"]))
       "F[-F+F]+FF")))


(def triangle
  (stack
    [(->SShape engrave [[-1 1] [1 -1]])]
    (take 4
      (nested-stack 
        (repeat engrave)
        [(->SShape engrave
           [ [-1 1] [-1 -1] [1 -1] ] )]
        #(- % 0.2)
      )
    )
  )
) 

(defn crdl [_ ]
  (clock-rotate (rand-nth [0 0 5 8 11])
    (drunk-line 10 0.1 engrave ))) 

(defn inner [n]
  (stack
    (square engrave)
    (checked-layout
       n
       plants
       (random-turn-groups
         (repeat triangle))
    )
  )
)



(defn knot []
   (rotate (/ PI 2)
     (stack
       [(->SShape engrave [[-1 0.6] [-0.4 0.6] [0.4 -0.6] [1 -0.6]])]
       [(->SShape engrave [[-1 -0.6] [-0.4 -0.6] [0.4 0.6] [1 0.6]])]
       (poly 1 0 0.3 8 engrave)
     )
   )
)

(stack
  (rect -1 -1 2 2)
  (framed 14
    (repeat [])
    (repeat (knot))
    (scale 0.95
      (inner 9)
    )
  )
)